#include<stdio.h>
#include "SqList.h"


void SqList_Init(SqList *L){
    L->length = 0;
}


int SqList_LocateElem(SqList l, ElemType e){
    for(int i=0;i<l.length ; i++){
        if(l.data[i]==e)
            return (i++);
    }
    return -1;
}


ElemType SqList_GetElem(SqList L, int i){
    if( i-1>L.length||i<=1)
        return -1;
    return L.data[i-1];
}


int SqList_Insert(SqList *L, int j, ElemType e){
    // 判断插入位置是否合法
    if(j>L->length+1 || j<1)
        return 0;
    // 把0作为基准
    j--;
    int i;
    // 移动插入位置之后的元素
    for(i=L->length ; i>j ; i--){
        L->data[i] = L->data[i-1];
    }
    // 插入要插入的元素
    L->data[j] = e;
    L->length++;
    return 1;
}


ElemType SqList_Delete(SqList *L, int i, ElemType *e){
    // 判读是否越界
    if(i<1 || i>L->length-1)
        return 0;
    // 保存要删除的元素
    *e = L->data[i-1];
    // 把删除的元素之后的每个元素向前移一个位置
    for(int j=i-1 ; j<=L->length-1 ; j++){
        L->data[j] = L->data[j+1];
    }
    return 1;
}


void SqList_Print(SqList L){
    for(int i=0 ; i<L.length ; i++){
        printf("%d ",L.data[i]);
    }
    printf("\n");
}


int SqList_Empty(SqList l){
    return l.length==0;
}



